#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMenuBar>//菜单栏
#include <QMenu>//菜单
#include <QAction>//菜单项
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //构造菜单栏对象
    QMenuBar *menuBar=new QMenuBar();
    //将这个菜单栏设置到这个窗口中
    this->setMenuBar(menuBar);

    //构建菜单对象
    QMenu *menu1=new QMenu("菜单1");
    QMenu *menu2=new QMenu("菜单2");
    QMenu *menu3=new QMenu("菜单3");

    //给这个菜单栏中添加具体的菜单
    menuBar->addMenu(menu1);
    menuBar->addMenu(menu2);
    menuBar->addMenu(menu3);

    //构造菜单项
    QAction *action1=new QAction("菜单项1");
    QAction *action2=new QAction("菜单项2");
    QAction *action3=new QAction("退出");

    //给指定菜单中添加菜单项
    menu1->addAction(action1);
    menu1->addAction(action2);
    menu1->addAction(action3);

    //给指定的菜单项添加槽函数，使其实现某种功能
    //当菜单项被点击后，会触发triggered信号，类似于clicked信号。 - 连接自定义槽函数
    connect(action1,&QAction::triggered,this,&MainWindow::handler);
    //连接这个主窗口类MainWindow的内置槽函数 - 关闭此主窗口的槽函数
    connect(action3,&QAction::triggered,this,&MainWindow::close);
}

void MainWindow::handler()
{
    qDebug()<<"菜单项1-触发";
}

MainWindow::~MainWindow()
{
    delete ui;
}
